Page({
  data: {
    addressId: '', //地址id
    isDefault: false,
    contactName: '', // 联系人姓名
    contactPhone: '', // 手机号
    addressDesc: '', //所在学校
    addressCode: '', //地址编码
    addressDetail: '', //房间号
    address: '', // 详细地址
    itemList: ['华中科技大学', '中南财经政法大学', '武汉大学'], //地址枚举
    schoolList: [], //学习列表
    isPrivacyChecked: false, // 是否勾选隐私协议
  },
  onLoad(option) {
    console.log(option.option);
    if (option.option != 'undefined') {
      // 编辑模式：使用传入的地址信息
      let e = JSON.parse(option.option)
      this.setData({
        addressId: e.addressId, //地址id
        isDefault: e.isDefault,
        contactName: e.contactName, // 联系人姓名
        contactPhone: e.contactPhone, // 手机号
        addressDesc: e.addressDesc, //所在学校
        addressCode: e.addressCode, //地址编码
        addressDetail: e.addressDetail, //房间号
      })
      // console.log(this.data);
    } else {
      // 新增模式：从 storage 读取 home 页选择的学校信息（不可修改）
      const selectedAddress = wx.getStorageSync('selectedAddress');
      if (selectedAddress) {
        this.setData({
          addressDesc: selectedAddress.addressName || '',
          addressCode: selectedAddress.addressCode || ''
        });
      }
    }
  },
  radioChange: function (e) {
    console.log(e.currentTarget.dataset.value);
    this.setData({
      isDefault: !e.currentTarget.dataset.value
    });
  },
  bindcontactNameInput: function (e) {
    // console.log(e);
    this.setData({
      contactName: e.detail.value
    });
  },
  bindcontactPhoneInput: function (e) {
    this.setData({
      contactPhone: e.detail.value
    });
  },
  bindaddressDetailInput: function (e) {
    this.setData({
      addressDesc: e.detail.value
    });
  },
  bindRoomIdInput: function (e) {
    this.setData({
      addressDetail: e.detail.value
    });
  },
  // 勾选隐私协议
  onPrivacyCheckChange: function(e) {
    console.log(">>> isPrivacyChecked", this.data.isPrivacyChecked);
    console.log(">>>addAddress.onPrivacyCheckChange,e.value",JSON.stringify(e.detail.value));
    this.setData({
      isPrivacyChecked: !this.data.isPrivacyChecked,
    });
  },
  onSearch: function () {
    // 新增模式下，不允许修改学校
    if (!this.data.addressId) {
      wx.showToast({
        title: '学校由首页选择决定，不可修改',
        icon: 'none'
      });
      return;
    }
    
    // 编辑模式下，允许修改学校
    wx.cloud.callFunction({
      name: 'xiaoBangCommonFunction',
      data: {
        getAvaliableSchoolListRequest: {}
      },
      success: res => {
        console.log("getAvaliableSchoolList", res.result.data.addressList);
        let that = this
        that.setData({
          schoolList: res.result.data.addressList
        });
        wx.showActionSheet({
          // itemList: this.data.itemList,
          itemList: res.result.data.addressList.map(item => {
            return item.addressDesc
          }),
          success(res) {
            console.log(res.tapIndex)
            // console.log(that.data.itemList[res.tapIndex])
            let scolName = that.data.schoolList[res.tapIndex].addressDesc
            let scolCode = that.data.schoolList[res.tapIndex].addressCode
            that.setData({
              addressDesc: scolName,
              addressCode: scolCode
            });
          },
          fail(res) {
            console.log(res.errMsg)
          }
        })
      },
      fail: err => {
        console.error('[云函数] [getAvaliableSchoolList] 调用失败', err)
      }
    })


  },
  // 提交
  submitAddress: function () {
    const {
      contactName,
      contactPhone,
      addressDesc,
      addressDetail
    } = this.data;
    console.log(this.data);
    if (!contactName) {
      wx.showToast({
        title: '请填写联系人',
        icon: 'none'
      });
      return;
    } else if (!contactPhone) {
      wx.showToast({
        title: '请填写手机号',
        icon: 'none'
      });
      return;
    } else if (!addressDesc) {
      wx.showToast({
        title: '请填写所在学校',
        icon: 'none'
      });
      return;
    } else if (!addressDetail) {
      wx.showToast({
        title: '请填写楼栋和房间号',
        icon: 'none'
      });
      return;
    }
    const contactPhoneReg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/
    if (!contactPhoneReg.test(contactPhone)) {
      // console.log('手机号格式正确')
      wx.showToast({
        title: '手机号格式错误',
        icon: 'none'
      });
      return;
    }
    if (!this.data.isPrivacyChecked) {
      wx.showToast({
        title: '请勾选隐私协议',
        icon: 'none',
      });
      return;
    }
    // 这里添加提交地址的逻辑，例如发送请求到服务器
    let userId = wx.getStorageSync('openId');
    let prams = {
      userId: userId,
      addressId: this.data.addressId, //如果addressId为空，表示新增，不为空(回填id)表示修改
      contactName: this.data.contactName, //联系人
      contactPhone: this.data.contactPhone, //联系手机号
      addressDesc: this.data.addressDesc, //地址描述
      addressCode: this.data.addressCode, //地址编码
      addressDetail: this.data.addressDetail, //用户手动输入的详细地址
      isDefault: this.data.isDefault //是否是默认地址,true表示是默认地址
    }
    wx.cloud.callFunction({
      name: 'xiaoBangCommonFunction',
      data: {
        addAddressRequest: {
          ...prams,
        }
      },
      success: res => {
        console.log(res);
      },
      fail: err => {
        console.error('[云函数] [addAddress] 调用失败', err)
      }
    })
    wx.showToast({
      title: '地址保存成功',
      icon: 'success'
    });
    setTimeout(() => {
      wx.navigateBack({
        url: '/pages/addressManagement/index'
      })
    }, 1000)
  },
  // 显示隐私协议模态框
  showPrivacyPolicy() {
    wx.showModal({
      title: '用户隐私协议',
      content: `欢迎使用本应用！以下是隐私协议内容：
1. 我们将保护您的个人隐私信息。
2. 您的个人信息仅用于配送服务，不会泄露给第三方。
3. 阅读并同意隐私协议后才能保存您的地址。`,
      showCancel: false, // 是否显示取消按钮
      confirmText: '我知道了', // 确认按钮文字
      confirmColor: '#ff4500', // 确认按钮颜色
    });
  },

});